1. 使用 react 写网页,要引入哪几个包?
   react.js react 的核心包
   react-dom.js 提供了操作 DOM 的 api
   babel.js 将 jsx 编译成 React.createElement

2. jsx 动态插入数据

   插值表达式写在什么位置

   - 可以写在标签的子节点 渲染 js 的结果

   - 可以写在属性里面 控制属性

   插值表达式中可以传入什么

   可以传入任何的 js 表达式

3. 如果要渲染时,以下这些是否会渲染,是否会警告或报错
   以下这些都是写在子节点的位置

   {变量} 要取决于变量里面的值是什么
   {[1,2,3]} 会把每个元素当作子节点渲染出来
   {true} 不会渲染, 没有报错或警告
   {{name: 'zs'}} 不会渲染, 会报错
   {fn()} 渲染函数的返回值
   {const fn=function(){}} 不能渲染,传入的不是表达式

4. 类名怎么写,行内样式怎么写?

有一个 div 标签,需要添加类名 test 和 one. 以及需要给这个标签添加行内样式,包含字体大小,字体颜色,高度

<div className="test one" style={{fontSize:18, color:'red', height:22}}></div>

5. 列表渲染

需求: 有一个数组 const arr = ['a','b','c'], 根据数组,动态的创建 h3 标签

const div = <div>

<h3>数组的元素</3>

</div>

const div = <div>
{arr.map((item,index)=>{
return (

<h3 key={item}>
{item.name}
</h3>
)
})}
</div>

6. 注册事件,事件处理函数中 this 为什么指向 undefined

- 因为写的函数不是真正的事件处理函数，在 react 中是通过 apply 调用的,所以 this 应该指向 window
- 代码被 babel 编译了,开启了严格模式,所以最终指向 undefined
